home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1994-08-21 | 6.2 KB | 243 lines |
- -> HDspeed Simple program to make comparitive tests
- of hard disc and interface speed
- ------- Change these values if you wish -------
- @rnd_file% = 8192 :
- Size in Kb for random access file used
- Eblockfile%= 2048 :
- Size in Kb of data used for block load/save
- "Wimp_Initialise",200,&4B534154,"HD Speed"
- ,hand%
- =handle%=-1:r_file%=rnd_file%*1024:b_file%=blockfile%*1024
- app_dir% &100, results% 128, filename% 32, appname% 32, rnd% 5100, baseline% 64
- @$appname%="HD Speed Test"+
- "Wimp_CommandWindow",appname%
- memsz%=
- -&8000:buff%=
- '"Error ";
- ;" : "+
- handle%>=0
- #handle%:
- "OS_ReadVarVal","Obey$Dir",app_dir%,256,0
- ,,L%
- app_dir%?L%=13
- test$=$app_dir%+".temp"
- file_sys$="":I%=app_dir%
- ?I%<>58:file_sys$+=
- (?I%):I%+=1:
- drive_name$="":I%+=1
- ?I%<>46:drive_name$+=
- (?I%):I%+=1:
- file_sys$+"_FreeSpace",drive_name$+
- free%,biggest%
- r_file%>b_file% max%=r_file%
- max%=b_file%
- free%<max%
- 0,"HD Speed needs at least ";max%
- 1024;" Kb of free space to create test file":
- baseline
- "OS_File",11,test$,&FFD,,0,r_file%
- "OS_Find",&CC,test$
- handle%
- wkspc(64*1024)=
- 0,"Not enough RAM for buffers"
- 'a$;+r_file%
- 1024;" Kb"'
- I%=0
- #handle%=0:
- J%=1
- &C800:K%=
- #handle%:
- %5!results%=
- :!baseline%=(!baseline%/!results%)*100
- num_str(!results%);
- num_str(!baseline%);"%"
- a$;:
- I%=0
- #handle%=0:
- J%=1
- &C800:
- #handle%,K%:
- )9results%!4=
- :baseline%!4=(baseline%!4/results%!4)*100
- num_str(results%!4);
- num_str(baseline%!4);"%"
- #handle%=0:
- J%=1
- &7D000:K%=
- #handle%:
- -9results%!8=
- :baseline%!8=(baseline%!8/results%!8)*100
- num_str(results%!8);
- num_str(baseline%!8);"%"
- a$;:
- #handle%=0:
- J%=1
- &7D000:
- #handle%,K%:
- :results%!12=
- 1=results%!12=
- :baseline%!12=(baseline%!12/results%!12)*100
- num_str(results%!12);
- num_str(baseline%!12);"%"
- 3.I%=
- (-10):
- I%=0
- 4:rnd%!I%=
- (&FFFF):
- a$;:
- I%=0
- &C,3,handle%,buff%,1,rnd%!I%:
- 6=results%!16=
- :baseline%!16=(baseline%!16/results%!16)*100
- num_str(results%!16);
- num_str(baseline%!16);"%"
- a$;:
- I%=0
- &C,1,handle%,buff%,1,rnd%!I%:
- :2I%=
- (-10):
- I%=0
- 4:rnd%!I%=
- (r_file%-1):
- ;=results%!20=
- :baseline%!20=(baseline%!20/results%!20)*100
- num_str(results%!20);
- num_str(baseline%!20);"%"
- a$;:
- I%=0
- &C,3,handle%,buff%,1,rnd%!I%:
- ?=results%!24=
- :baseline%!24=(baseline%!24/results%!24)*100
- num_str(results%!24);
- num_str(baseline%!24);"%"
- a$;:
- I%=0
- &C,1,handle%,buff%,1,rnd%!I%:
- C=results%!28=
- :baseline%!28=(baseline%!28/results%!28)*100
- num_str(results%!28);
- num_str(baseline%!28);"%"
- #handle%:handle%=-1
- 'a$;+b_file%
- 1024;+" Kb"'
- I%=0
- 8,10,test$,&FFD,,buff%,buff%+&2800:
- J=results%!32=
- :baseline%!32=(baseline%!32/results%!32)*100
- num_str(results%!32);
- num_str(baseline%!32);"%"
- I%=0
- 8,16,test$,buff%,0:
- N=results%!36=
- :baseline%!36=(baseline%!36/results%!36)*100
- num_str(results%!36);
- num_str(baseline%!36);"%"
- wkspc(b_file%)=
- 0,"Not enought RAM for block file buffers"
- I%=0
- 8,10,test$,&FFD,,buff%,buff%+b_file%:
- S=results%!40=
- :baseline%!40=(baseline%!40/results%!40)*100
- num_str(results%!40);
- num_str(baseline%!40);"%"
- I%=0
- 8,16,test$,buff%,0:
- W=results%!44=
- :baseline%!44=(baseline%!44/results%!44)*100
- num_str(results%!44);
- num_str(baseline%!44);"%"
- I%=0
- 8,10,test$,&FFD,,buff%,buff%+&C800:
- 8,16,test$,buff%,0:
- [=results%!48=
- :baseline%!48=(baseline%!48/results%!48)*100
- num_str(results%!48);
- num_str(baseline%!48);"%"
- I%=0
- 8,10,test$,&FFD,,buff%,buff%+&80000:
- 8,16,test$,buff%,0:
- _=results%!52=
- :baseline%!52=(baseline%!52/results%!52)*100
- num_str(results%!52);
- num_str(baseline%!52);"%"
- I%=0
- 8,10,test$,&FFD,,buff%,buff%+b_file%:
- 8,16,test$,buff%,0:
- c=results%!56=
- :baseline%!56=(baseline%!56/results%!56)*100
- num_str(results%!56);
- num_str(baseline%!56);"%"
- "OS_File",6,test$
- '" Enter filename for results (RETURN = don't save)"'" :- ";
- "OS_ReadLine",filename%,11,33,255
- ,len%
- len%>0
- filename%?len%=13
- p%=buff%:
- l1 $p%=" Speed test carried out on '"+$app_dir%
- m- I%=p%:
- :I%+=1:
- ?I%=46:?I%=13:$I%="' on "
- I%?5=0:
- "OS_Word",14,I%+5
- o# p%=
- next_line(p%):?p%=10:p%+=1
- p< $p%=" All times are in centi-seconds":p%=
- next_line(p%)
- $p%:$p%+=
- (r_file%
- 1024)+" Kb"
- r# p%=
- next_line(p%):?p%=10:p%+=1
- I%=0
- $p%:$p%+=
- num_str(results%!(I%*4))+
- num_str(baseline%!(I%*4))+"%":p%=
- next_line(p%)
- ?p%=10:p%+=1:
- $p%:$p%+=
- (b_file%
- 1024)+" Kb"
- x# p%=
- next_line(p%):?p%=10:p%+=1
- I%=8
- $p%:$p%+=
- num_str(results%!(I%*4))+
- num_str(baseline%!(I%*4))+"%":p%=
- next_line(p%)
- "OS_File",10,$app_dir%+".results."+$filename%,&FFF,0,buff%,p%
- "Wimp_CloseDown",hand%,&4B534154
- num_str(num%)
- (num%))," ")+
- (num%)
- next_line(pt%)
- :pt%+=1:
- ?pt%<32
- ?pt%=10
- =pt%+1
- wkspc(sz%)
- "Wimp_SlotSize",memsz%+sz%,-1
- e%<(memsz%+sz%):=
- " Byte access tests, large file size = "
- " Read 50K sequential bytes 10 times "
- " Write 50K sequential bytes 10 times"
- " Read 500K sequential bytes "
- " Write 500K sequential bytes "
- " 50 Kb file read 1,000 random bytes "
- " 50 Kb file write 1,000 random bytes"
- " Large file read 1,000 random bytes "
- " Large file write 1,000 random bytes"
- " Block data load/save, large file size = "
- " Save 50Kb file 100 times "
- " Load 50Kb file 100 times "
- " Save large block file 10 times "
- " Load large block file 10 times "
- " Save/load 50 Kb file 25 times "
- " Save/load 512 Kb file 10 times "
- " Save/load large block file 10 times"
- baseline
- I%=0
- J%:baseline%!I%=J%
- 4694,5549,4715,5547,1806,3331,9326,17093
- 19029,18343,24571,30584,31644,34836,45965
-